package com.zs.common.utils;

import lombok.SneakyThrows;
import org.springframework.beans.BeanUtils;

import java.util.ArrayList;
import java.util.List;

/**
 * Copyright 2020 ZS Network Co., Ltd. All rights reserved.
 * 本文件仅限于正数网络技术有限公司内部传阅，禁止外泄以及用于其他的商业目的。
 * Created by yuancong on 2022/10/15.
 */
public class DataConvertUtils {
    /**
     * 将Model数组转换为DTO数组
     * @param modelList
     * @param <D>  DTO类型
     * @param <M>  Model类型
     * @return
     */
    @SneakyThrows
    public static <D,M> List<D> toDTO(List<M> modelList, Class<D> dtoType){
        List<D> result = new ArrayList<>();
        if (modelList == null || modelList.isEmpty()) {
            return result;
        }

        for (M model : modelList) {
            D dto = dtoType.newInstance();
            BeanUtils.copyProperties(model,dto);
            result.add(dto);
        }
        return result;
    }
}
